package com.hup.utils.swing.customView;

import com.hup.utils.swing.ComponentUtil;

import javax.swing.JComponent;
import javax.swing.JLabel;
import java.awt.Color;
import java.awt.Graphics;

/**
 * 支持背景色的 {@link JLabel}
 * .原生的 JLabel 可以用 {@link ComponentUtil#setBackground(JComponent, Color)} 设置不透明的背景色
 * .但背景色半透明时, 会有[绘制残留问题], {@link OpaqueLabel}的初衷就是为了解决此问题的,但有bug
 *
 * @author hugan
 * @date 2022/10/2
 */
public class ColorBackgroundLabel extends JLabel {

    @Override
    public void setOpaque(boolean isOpaque) {
        super.setOpaque(false);
    }

    @Override
    public void paint(Graphics g) {
        //此处实现背景色,支持半透明颜色
        Color background = getBackground();
        if (background != null) {
            g.setColor(background);
            g.fillRect(0, 0, getWidth(), getHeight());
        }
        super.paint(g);
    }

}
